﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;    
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DAO
{
    public class DAOTipoPago
    {
        public static List<Entidad.EntidadTipoPago> getTodas()
        {
            List<Entidad.EntidadTipoPago> lista = new List<Entidad.EntidadTipoPago>();
            AccesoDato ad = new AccesoDato();
            try
            {
                String sql = "Select id_tipo_pago, nombre from tipo_pago order by nombre";
                SqlDataReader dr = ad.ejecutarSql(sql, null);

                while (dr.Read())
                {
                    Entidad.EntidadTipoPago e = new Entidad.EntidadTipoPago();
                    e.id_tipo_pago = int.Parse(dr["id_tipo_pago"].ToString());
                    e.nombre = dr["nombre"].ToString();
                    lista.Add(e);
                }
            }
            catch (ApplicationException)
            {
                throw new ApplicationException("Error al obtener todos los tipos de pago");
            }
            finally
            {
                ad.cerrarDR();
            }

            return lista;
        }

        public static Entidad.EntidadTipoPago buscar(int id_tipo_pago)
        {
            Entidad.EntidadTipoPago e = new Entidad.EntidadTipoPago();
            AccesoDato ad = new AccesoDato();
            try
            {
                String sql = "select id_tipo_pago, nombre from tipo_pago where id_tipo_pago = @id_tipo_pago";
                SqlParameter parametro = new SqlParameter("id_tipo_pago", id_tipo_pago);
                List<SqlParameter> parametros = new List<SqlParameter>();
                parametros.Add(parametro);
                SqlDataReader dr = ad.ejecutarSql(sql, parametros);
                while (dr.Read())
                {
                    e.id_tipo_pago = int.Parse(dr["id_tipo_pago"].ToString());
                    e.nombre = dr["nombre"].ToString();
                }
            }
            catch (ApplicationException)
            {

                throw new ApplicationException("Error al obtener el tipo pago");
            }
            finally
            {
                ad.cerrarDR();
            }
            return e;
        }
    }
}
